<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <script>
        var arr = [1, 2, 3, 1, 1, 1, 2, 2, 3, 3, 4]
        var res = arr.reduce(function (pre, cur) {
            // 使用reduce() 方法接收一个函数作为累加器
            if (cur in pre) {
                // 判断当前元素是否存在pre对象中
                pre[cur] += 1
                // 结果为ture给对应的键的值加1
            } else {
                pre[cur] = 1
                // 结果为fales就给对象添加一个cur当前元素的健名赋值1
            }
            return pre
        }, {})
        for (var key in res) {
            console.log(key + '出现的次数' + res[key]);
        }
    </script>
</body>

</html>